#ifndef METAPROGRESS_HH
#define METAPROGRESS_HH

#include "Player.hh"

// This class manages meta-progression—a permanent upgrade system 
// that carries over across game runs.

class MetaProgress{
    private:
        unsigned bonusMaxHP;
        unsigned startingGold;
        unsigned startingAP;


        constexpr static unsigned baseHP = 100;
        constexpr static unsigned baseAP = 15;
        constexpr static unsigned baseATK = 20;
        constexpr static unsigned baseDEF = 0;
        constexpr static unsigned baseGold = 0;

    public:
        ~MetaProgress()=default;
        MetaProgress(const MetaProgress& other)=default;
        MetaProgress& operator=(const MetaProgress& other)=default;
        MetaProgress();

        void gainProgress( bool wonBoss, bool defeatedByMonster);
        unsigned getMaxAp() const;
        void displayProgress() const;

        Player createPlayer() const;

};

#endif